From d7c3235cd06ce561ec7a023afbb8c994bf90df74 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 5 May 2023 06:57:08 -0400 Subject: [PATCH] gsk: Add some debug helpers --- gsk/gl/gskgldriver.c | 18 ++++++++++-------- gsk/gl/gskgldriverprivate.h | 7 ++++++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/gsk/gl/gskgldriver.c b/gsk/gl/gskgldriver.c index d0af5e76da..1530056fcf 100644 --- a/gsk/gl/gskgldriver.c +++ b/gsk/gl/gskgldriver.c @@ -1121,19 +1121,21 @@ gsk_gl_driver_lookup_shader (GskGLDriver *self, } #ifdef G_ENABLE_DEBUG -static void -write_atlas_to_png (GskGLDriver *driver, - GskGLTextureAtlas *atlas, - const char *filename) +void +gsk_gl_driver_save_texture_to_png (GskGLDriver *driver, + int texture_id, + int width, + int height, + const char *filename) { GdkGLTextureBuilder *builder; GdkTexture *texture; builder = gdk_gl_texture_builder_new (); gdk_gl_texture_builder_set_context (builder, gsk_gl_driver_get_context (driver)); - gdk_gl_texture_builder_set_id (builder, atlas->texture_id); - gdk_gl_texture_builder_set_width (builder, atlas->width); - gdk_gl_texture_builder_set_height (builder, atlas->height); + gdk_gl_texture_builder_set_id (builder, texture_id); + gdk_gl_texture_builder_set_width (builder, width); + gdk_gl_texture_builder_set_height (builder, height); texture = gdk_gl_texture_builder_build (builder, NULL, NULL); gdk_texture_save_to_png (texture, filename); @@ -1168,7 +1170,7 @@ gsk_gl_driver_save_atlases_to_png (GskGLDriver *self, G_DIR_SEPARATOR_S, (int)self->current_frame_id, atlas->texture_id); - write_atlas_to_png (self, atlas, filename); + gsk_gl_driver_save_texture_to_png (self, atlas->texture_id, atlas->width, atlas->height, filename); g_free (filename); } diff --git a/gsk/gl/gskgldriverprivate.h b/gsk/gl/gskgldriverprivate.h index 15340b0a1b..666d20090b 100644 --- a/gsk/gl/gskgldriverprivate.h +++ b/gsk/gl/gskgldriverprivate.h @@ -176,8 +176,13 @@ GskGLProgram * gsk_gl_driver_lookup_shader (GskGLDriver *s GError **error); #ifdef G_ENABLE_DEBUG +void gsk_gl_driver_save_texture_to_png (GskGLDriver *self, + int texture_id, + int width, + int height, + const char *filename); void gsk_gl_driver_save_atlases_to_png (GskGLDriver *self, - const char *directory); + const char *filename); #endif static inline GskGLTexture * -- 2.30.2